Customer service representatives, such as representatives behind a customer service desk at a retail establishment or performing telephone-based customer support at a call center, require the ability to quickly access customer information. Customer information includes information such as account numbers, names and addresses, transactions performed by customers, and bills or other statements provided to the customers. Typically, this information is stored on a centralized mainframe computer system and accessed via a networked client computer system.
Representatives typically use a terminal emulator program to access programs and data stored at the mainframe via command line or menu-based programs. These programs are tightly integrated and allow representatives to access all of a customer's information nearly concurrently. For example, if a representative calls up the address of a customer, the representative, through a few commands, can easily call up transaction data for the same customer.
However, the functionality of such data access methods is inherently limited by the nature of terminal emulator programs. In general, the command line and/or menu-based programs lack the ease of use of more modern applications that execute on the client computer. Client-based programs can take advantage of graphical user interfaces (GUIs) and other functionality provided by modern operating systems. Therefore, there is a general desire to transition away from terminal emulator programs and toward programs that execute on the client computer, even though customer data are still held on the mainframe computer system.
In order to ease development, the customer service functionality is preferably provided by a suite of application programs. For example, one program allows a representative to update a customer's address, while another program allows the representative to perform transactions on behalf of the customer. Ideally, the programs work together, so that when a representative calls up a particular customer in one program, the representative can easily call up the same customer in the other programs.
In practice, however, such integration between the programs is difficult to achieve. One way to enable this integration is to provide each program with the ability to communicate and/or control the other programs. This solution works if there are only a few programs, but rapidly breaks down if there are multiple applications that must communicate with each other. Moreover, such direct communication creates a chain of dependencies throughout the programs. If one application program is changed, the change may affect all of the other programs that send messages to, or receive messages from, the changed program. As a result, client-based applications are frequently not integrated and therefore require the representative to re-enter the customer information into each program in order to separately call up information about the customer.
Therefore, there is a need in the art for a way to integrate multiple client-based application programs in a manner that is conducive to use by a customer service representative. The solution to this need should be relatively easy to implement, occupy a small footprint on the client computer, and be scalable in order to support many applications.